home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 2005 October / Computer Shopper 2005 October.iso / Toolkit / Internet / WARFTP / PATCH / ward167-5.exe / ReleaseNotes.txt < prev    next >
Encoding:
Text File  |  2001-03-06  |  74.8 KB  |  2,191 lines

  1. RELEASE NOTES
  2.  
  3. WAR FTP DAEMON for Win95/NT
  4.  
  5. Get the latest update at: http://www.jgaa.com
  6.  
  7. Get the latest information about bugs & problems
  8. at http://support.jgaa.com
  9.  
  10.  
  11. You can join the warftpd mailing list or update notification
  12. lists. Send a mail to info@jgaa.com (auto-responder) for more
  13. information.
  14.  
  15.  
  16. KNOWN PROBLEMS
  17.     
  18.     NT SERVICE:
  19.  
  20.         * The service will hang if you use a user account
  21.           that is not in the NT "administrator" group.
  22.  
  23.         * You will not be able to log out from the console
  24.           without stopping the service if you have the
  25.            SITE SHOW option enabled. (Options/NT tab).
  26.           This is due to a bug in MFC. I have not found a
  27.           work-around.
  28.           If you need to have the server auto-start when the 
  29.           system boot, *and* need the SITE SHOW option enabled,
  30.           stop the service and reboot rather than logging out.
  31.  
  32.         * I have experienced a few times that it has been impossible
  33.           to log in to NT 4 with the same user account that caused
  34.           the server to crash (when I logged off and the SITE SHOW
  35.           was enabled). To reset the user environment (and enable
  36.             NT login), log on to NT as another user with ADMINISTRATOR
  37.           privilegies and load/save the user in the NT User Manager.
  38.           This will clean up the mess (probarbly somewhere in the
  39.           registery) and solve the problem.
  40.           This looks like a NT 4 bug to me...
  41.  
  42.     The server will crash rather than playing sounds on some (NT 3.51 ??)
  43.     systems. If the server is unstable, disable the sound option
  44.     (Options/Sound tab).
  45.  
  46. -------------------------------------------
  47. V. 1.67-5 Security upgrade March 6th 2001
  48. -------------------------------------------
  49.  
  50. BUGFIX    With the command dir *./../.. it is possible to break out 
  51.     of root directory. After examining the problem, it looks 
  52.     like the exploit is limited to listing the content one 
  53.     level up from the root-directory. I was unable to access 
  54.     any of the listed files or directories.  
  55.     Fixed.
  56.  
  57. -------------------------------------------
  58. V. 1.67-4 Security upgrade february 3rd 2000
  59. -------------------------------------------
  60.  
  61. BUGFIX    If a large string (8 KB) was supplied to the CWD command, 
  62.     the server would crash.    The security should not be compromized,
  63.     but the problem makes it possible to make efficient DOS attacks.
  64.  
  65.     As of from now, the server will not allow command parameters that 
  66.     exeeds the max length of a pathname in Win32.
  67.     
  68. -------------------------------------------
  69. V. 1.67-3 Security upgrade january 6th 2000
  70. -------------------------------------------
  71.  
  72. This version fix a serious security problem present in
  73. all previous versions. 
  74.  
  75. -------------------------------------------
  76. V. 1.67b02 Experimental version September 17 1999
  77. -------------------------------------------
  78.  
  79. ADDED    Hammering protection. See Options/Hammering.
  80.  
  81. CHANGE    Increased send/receive buffer from 2 to 16 kb.
  82.     This will take up 30 KB more memory for each
  83.     transfer, but reduce the CPU overhead on fast
  84.     networks and increase the troughput.
  85.  
  86. ADDED    Alias support. See the sample file WarFtpdAlias.ini
  87.     (installed in the windows directory by the installer).
  88.     If the sample file is used, the user "ftp" will be an
  89.     alias to "anonymous". 
  90.  
  91. BUGFIX    ID#223 at support.jgaa.com. Copying files from CD-ROM 
  92.     to harddisk prior to download did not work (the 
  93.     connection hang). Fixed.
  94.     Fool my brain dead ISP option did not work as
  95.     advertized. Fixed. NOTE: This fix may break the way
  96.     current FTP server behave with firewalls! Check your
  97.     settings!
  98.  
  99. BUGFIX    In some cases access to root-directories was denied
  100.     unless the directory had recursive permissions turned
  101.     on. Fixed.
  102.  
  103. BUGFIX    ID#131 at support.jgaa.com. Filenames that ended
  104.     in space before a . was denied. I have relaxed the
  105.     path-rules a bit to allow this. THIS MAY AFFECT
  106.     SECURITY AND MAY LEAD TO SIDE-EFFECTS!
  107.  
  108. BUGFIX    Paths like /./file was misinterpereted. Fixed.
  109.  
  110.     Compiled to use static libraries.
  111.  
  112. -------------------------------------------
  113. V. 1.67b01 Experimental version September 10 1999
  114. -------------------------------------------
  115.     
  116.     Recompile with MSVC 6.0 Enterprise and updated libraries.
  117.     Compiled to use static libraries.
  118.  
  119. -------------------------------------------
  120. V. 1.66x4s Experimental version February 7 1998
  121. -------------------------------------------
  122.  
  123.     Same as 1.66x4, but compiled with static libs to avoid 
  124.     dll conflicts.
  125.  
  126. -------------------------------------------
  127. V. 1.66x4 Experimental version February 7 1998
  128. -------------------------------------------
  129.  
  130. BUGFIX    The server now checks the length of the user ID and
  131.     password during login to avoid buffer overflow problems.
  132.  
  133. BUGFOX    The server now handle disk partitions > 4 GB correctly.
  134.  
  135. -------------------------------------------
  136. V. 1.66x3 Experimental version August 1 1997
  137. -------------------------------------------
  138.  
  139. ADDED    Quiet option. If the server is started with the "-quiet" line
  140.     parameter, it will hide the tray icon. That means that the
  141.     program will be invisible once the main window is
  142.     minimized. In order to restore the window, log on to the
  143.     server as a user with Sysadmin privilegies, and issue
  144.     the SITE SHOW comand.
  145.     This option is intended for Windows 95 users only. NT users
  146.     can run the server as a NT service.
  147.  
  148. CHANGE    If a file can't be open, the server will send a 453 error
  149.     message. Previous versions would send a 150 message first,
  150.     and then a 426 error message. This confused some FTP clients.
  151.  
  152. BUGFIX    Dir change messages did'nt work in 1.66x2
  153.     Fixed.
  154.  
  155. BUGFIX    If VfSys was not used, and a drive (C:\) was accessed, the 
  156.     path missed a backslash, so that the path looked 
  157.     like: /FTPtestC-DRIVE in stead of /C-DRIVE. 
  158.     Fixed.
  159.  
  160. -------------------------------------------
  161. V. 1.66x2 Experimental version June. 30 1997
  162. -------------------------------------------
  163.  
  164. CHANGE    the error: "CAUGHT UNKNOWN EXCEPTION" in OnClose() is changed
  165.     to a warning message.
  166.  
  167. CHANGE    MDTM now report GMT time.
  168.  
  169. CHANGE    The STOU command now allow an optional filename parameter.
  170.  
  171. BUGFIX    "501 access denied" is changed to "550 access denied".
  172.  
  173. BUGFIX    The PORT command must now follow the RFC 959 specs, or
  174.     the server will give an error message.
  175.  
  176. -------------------------------------------
  177. V. 1.66x1 Release version Apr. 24 1997
  178. -------------------------------------------
  179.  
  180. ADDED    Firewall support (Options/FTP). The server can reply with the firewall's
  181.     IP address on passive transfers.
  182.  
  183. -------------------------------------------
  184. V. 1.65 Release version Apr. 24 1997
  185. -------------------------------------------
  186.  
  187. ADDED    Option to handle brain dead ISP's.
  188.     Some ISP's deny use of FTP servers for their PPP
  189.     users. You can now bypass this restriction by
  190.     using another port than 21, and check the "Fool 
  191.     brain dead ISP's" checkbox in /Options/FTP
  192.  
  193. ADDED    New method for multimoming/mutlihosting. Previous
  194.     versions of War FTP Daemon handled this by adding
  195.     @ipNum after the user names. This still works, but you
  196.     can now also set up several instances of the server
  197.     on the same machine, each listening to different IP
  198.     numbers (the IP numbers must be assigned to the machine).
  199.     Use the /Options/Serber Name/Limit access... field to
  200.     enable this.
  201.     Note: Each virtual server must be installed in it's own
  202.     directory, and VfSys paths (if used) must _not_ overlap.
  203.  
  204. CHANGE    The startup therad for the server is now processing messages
  205.     from the operating system. (Since the server can be used as a 
  206.     NT service, the startup thread is not used by the server.)
  207.     This will prevent some problems when programs broadcast messages
  208.     to all running programs and expect an answer.
  209.  
  210. BUGFIX    sysmsg@Ipname.txt files was not shown correctly on
  211.     multihoming systems.
  212.     Fixed.
  213.  
  214. BUGFIX    On some systems the Options dialog did not work.
  215.     Fixed.
  216.  
  217. -------------------------------------------
  218. V. 1.63x Experimental version Apr. 22 1997
  219. -------------------------------------------
  220.  
  221. ADDED    Option to disable write protection on files open for
  222.     FTP send. (See Options/FTP)
  223.  
  224.  
  225. -------------------------------------------
  226. V. 1.62 Release version Apr. 20 1997
  227. -------------------------------------------
  228.  
  229. BUGFIX    Resume was broken when files was copied from CD-ROM.
  230.     Fixed.
  231.  
  232. -------------------------------------------
  233. V. 1.61 Release version Apr. 19 1997
  234. -------------------------------------------
  235.  
  236. Several bugs are traced and fixed. The server should now be unable
  237. to crash on release versions of Windows95 and NT. There are reported
  238. a few problems with Memphis and NT 5. I have asked Microsoft to provide
  239. me with copies of these systems in order to trace and fix this.
  240.  
  241. The installastion script in 1.55 had a problem where some system dll's was
  242. removed in the Windoes system directory and replaced with copies in the 
  243. server install dir. This is now fixed, so that new system dll's are copied
  244. to the Windows system directory.
  245.  
  246. ADDED    Option to copy files from CD-ROM and network drives to a local temp
  247.     dir before transmitting the file. (This has been on the "most wanted
  248.     features" list for a while.)
  249.     The server will start a new therad to perform the copying the first
  250.     time the copy operation is needed. This thread will serve all requests
  251.     to copy a file from a slow drive to a temp dir. This design ensures that the
  252.     server will handle all ongoing transfers at full speed, and also ensure
  253.     that only one file is copied from a CD-ROM drive or CD-ROM changer (jukebox)
  254.     at one time. Copying more than one file from a CD-ROM will slow down the
  255.     performance significantly. The one-file-at-the-time design will also 
  256.     reduce the load on the local network when files are copied from other
  257.     machines prior to download.
  258.     As soon as the file is copied, the transfere starts at full speed from
  259.     the local harddisk.
  260.  
  261. ADDED    Command to abort an ongoing file transfer from the server console.
  262.     Right click on the user and select "Stop transfer". No confirmation dialog
  263.     will pop up. If a transfer is open it will be aborted.
  264.  
  265. ADDED    Macros in the log file name. See the help section about the log
  266.     file for details.
  267.  
  268. -------------------------------------------
  269. V. 1.60x Experimental version Mar. 31 1997
  270. -------------------------------------------
  271.  
  272. BUGFIX    The firewall support caused WSAEADDRINUSE error
  273.     messages, and problems with opening the data connection.
  274.     Fixed.
  275.  
  276. -------------------------------------------
  277. V. 1.59x Experimental version Mar. 31 1997
  278. -------------------------------------------
  279.  
  280. BUGFIX    The spy option did not work in 1.57/58
  281.     Fixed
  282.  
  283. -------------------------------------------
  284. V. 1.58x Experimental version Mar. 29 1997
  285. -------------------------------------------
  286.  
  287. BUGFIX    A few UNKNOWN EXCEPTION's are removed
  288.  
  289. BUGFIX    A missing assignment to port 20 on the server side of file
  290.     transfers caused problems with firewalls.
  291.     Assumed fixed.
  292.  
  293. -------------------------------------------
  294. V. 1.56x Experimental version Feb. 17 1997
  295. -------------------------------------------
  296.  
  297. ADDED    ODBC logging. The ODBC log feature adds an option to log
  298.     file transfers to an MS-SQL server through an ODBC 
  299.     connection. You must have MS-SQL server installed before
  300.     you enble this option.
  301.  
  302.     Steps to install the ODBC log feature:
  303.  
  304.     1) Copy CODBCLog.dll into the War FTP Daemon directory
  305.     2) Modify ODBCLog.ini to your preferences.
  306.  
  307.         [ODBC]
  308.         Database=WarLog
  309.         Table=LOG
  310.         DoCreate=1
  311.         User=sa
  312.         Pwd=
  313.         ODBC name=WarFTPD
  314.  
  315.     3) Create a new empty SQL database, with the name you have
  316.        choosen as "Database".
  317.     4) Create a new ODBC definition on the machine running the
  318.        FTP server with the name you have choosen as "ODBC name".
  319.        Set the "default database" to the name of the database.
  320.     5) Make sure that the SQL user name and password in the  .ini
  321.        file are valid.
  322.  
  323.     Start the War FTP Daemon. The FTP server will try to create a new
  324.     table named "LOG" in the fresh database each time it start's up,
  325.     until the table is created. It will then automatically set the
  326.     flag "DoCreate" to 0. 
  327.  
  328.     In order to remove the option, simply delete the file CODBCLog.dll.
  329.  
  330. ADDED    Better protection against GPF problems. The server should now be
  331.     unable to crash. If a fatal error occur, the session that cause the
  332.     error might halt (from the users point of view), but the server should
  333.     remain online. Memory is not released when fatal error occurs, so this
  334.     can lead to a significant "memory leak" over some time.
  335.     If you see complaint's in the server log about CAUGHT UNKNOW EXCEPTION ...
  336.     restart the server or (if possible) reboot the machine. The error
  337.     handler is ment to keep the server alive until an operator can deal
  338.     with the problem, not as a solution to run a faulty system over a long
  339.     period of time.
  340.  
  341.  
  342. -------------------------------------------
  343. V. 1.55 Relese version Feb. 11. 1997
  344. -------------------------------------------
  345.  
  346. ADDED    Support for async chat when used with the War FTP Client.
  347.  
  348.     Implementation details: Async chat is enabled with the
  349.     SITE CHAT MODE=ON PROTOCOL=ASYNC REPLYCODE=nnn where nnn
  350.     is a number in range 200 - 299.
  351.     When enabled, the server send messages to the FTP client
  352.     as they apper, without delay, as normal command replies.
  353.     The message is identified by the number 'nnn'.
  354.     It is the responsibility of the FTP client to choose
  355.     a unique number so that it can seperate chat lines from
  356.     normal command replies.
  357.  
  358. ADDED    SITE PASS <new password> command. This allow users to 
  359.     change their passwords online.
  360.  
  361. BUGFIX    If a password was changed on a user account imported from
  362.     Serv-U, the password autentication would fail.
  363.     Fixed.
  364.  
  365. -------------------------------------------
  366. V. 1.54x Relese version Jan. 10. 1997
  367. -------------------------------------------
  368.  
  369. ADDED    Command line option to change the physical paths in
  370.     all the users FileAccess tab. This option is designed
  371.     to be used after the physical layout of the file
  372.     system has changed, like when you have added a new
  373.     disk drive.
  374.  
  375.     Syntax: war-ftpd -ReplacePathFrom C:\ -ReplacePathTo F:\
  376.  
  377.     The sample above will replace *all* user paths starting with
  378.     C:\ with F:\. C:\pub\ftp will i.e. now be F:\pub\ftp. The server
  379.     does not do any validiation of thhe changes.
  380.  
  381.     If you just use the -ReplacePathFrom without -ReplacePathTo,
  382.     any path matching the ReplacePathFrom argument will be permanently 
  383.     removed from the internal lists.
  384.  
  385.     MAKE A BACKUP COPY OF WARFTPDAEMON.DAT BEFORE YOU USE THIS
  386.     OPTION. THE CHANGES WILL BE PERMANENT.
  387.  
  388.     The code below shows the implementation of this feature:
  389.     (You don't need to understand the code in order to use
  390.     this feature, but c++ programmers will get a better
  391.     understanding of thow it works by looking at the code.
  392.  
  393.     if (SubstOldPath.GetLength())
  394.     {
  395.         if (!strnicmp(Me.m_Path, SubstOldPath, SubstOldPath.GetLength()))
  396.         {
  397.             if (SubstNewPath.IsEmpty())
  398.                 continue; // Path is to be deleted.
  399.             
  400.             LPCSTR p = Me.m_Path;
  401.             p += SubstOldPath.GetLength();
  402.             CString cBuf;
  403.             cBuf = SubstNewPath;
  404.             cBuf += p;
  405.             Me.m_Path = cBuf;
  406.         }
  407.     }
  408.  
  409.  
  410.  
  411. ADDED    Temporary user accounts. This feature is designed
  412.     to be used with automation tools, (like a CGI) to
  413.     allow one-time-access to files. It was originally
  414.     developed for the distribution of the War FTP Daemon
  415.     version 2 source code. In that case a CGI bin is called
  416.     from a web page. The CGI creates the temporary user
  417.     account and redirects the browser to the ftp server.
  418.     The benefit with this method is that warez traders can not
  419.     trade a FTP account. The account will be deleted the first
  420.     time it is used. The code below demonstrates how to use this 
  421.     feature:
  422.  
  423.     // Create tmp alias
  424.     char buf[32], *p;
  425.     int len = 16;
  426.     p = buf;
  427.     srand( (unsigned)time( NULL ) );
  428.     while(len)
  429.     {
  430.         i = rand();
  431.         if (isalpha((i & 0xff)))
  432.         {
  433.             *(p++) = (char)(i & 0xff);
  434.             --len;
  435.         }
  436.     }
  437.     buf[16] = 0;
  438.  
  439.     WritePrivateProfileString("tmp Alias", buf, "TheRealUserName","WarFtpdAlias.ini");
  440.     Sleep(1000);
  441.  
  442.     printf("HTML/1.1%cLocation: ftp://%s:password@you.ftp.com/warsrc.zip%c%c%c",10, buf, 10,10,10);
  443.  
  444.     As you might spot, the "tmp" userid is actually just a 
  445.     temporary nick to a real (permanent) user account. 
  446.     However, the FTP user will never know the identity
  447.     of this account (unless you expose it by using the userid
  448.     in some macro whne th euser logs on, or if you enable the
  449.     SITE WHO command.
  450.  
  451.     The ini file will be created automatically in the windows system 
  452.     catalog if you use the code above. This is also where the server
  453.     will look for it.
  454.  
  455.  
  456.  
  457. -------------------------------------------
  458. V. 1.52 Relese version Oct. 28. 1996
  459. -------------------------------------------
  460.  
  461. BUGFIX    If a user was kicked with the "ban IP" option checked
  462.     before he had logged on, the server would crash.
  463.     Fixed.
  464.  
  465. -------------------------------------------
  466. V. 1.51 Relese version Oct. 28. 1996
  467. (Upgrade from 1.50 only)
  468. -------------------------------------------
  469.  
  470. CHANGE    ABOR will now send file xmit termination message
  471.     if a file transfer is open.
  472.  
  473. CHANGE    The server will now recognize Fetch's ABOR sequence.
  474.  
  475. BUGFIX    2 bugs that caused GPF is fixed.
  476.  
  477. -------------------------------------------
  478. V. 1.50 Relese version Oct. 24. 1996
  479. -------------------------------------------
  480.  
  481.  
  482. ADDED    Option to mount network drives when the server runs as a
  483.     NT service.
  484.  
  485. ADDED    $g (group name) and $c (class name) macros to the upload
  486.     verification module.
  487.  
  488. ADDED    To help the ppp users to announce their current IP number,
  489.     the server will write the IP number reported by
  490.     Winsock to the file "CurrentIPNumber.txt" each time it
  491.     goes online.
  492.  
  493. UPDATED    Online help.
  494.  
  495. CHANGE    The server will not accept more than 5 ls therads. This
  496.     is done to avoid a MS bug in WaitForMultipleObjects()
  497.     that else would generate a huge memory leak.
  498.     This will not affect the performance of the server, unless
  499.     5 or more users are issuing recursive directory listings
  500.     at the same time.
  501.  
  502. BUGFIX    Code is borrowed from version 2 of the server to prevent a rare
  503.     GPF failure when users disconnect while up/download is in
  504.     progress.
  505.  
  506. BUGFIX    The connection counter was decrementing by one if a user was
  507.     denied by absolute IP. That would lead to negative connection
  508.     numbers.
  509.     Fixed.
  510.  
  511. BUGFIX    Fixed a bug in the Serv-U import filter that would lead to
  512.     "Access denied to home directory" errors.
  513.  
  514.     Note: You must still verify the File Access tab for each
  515.     user/group imported as War sometimes creates duplicate
  516.     entries.
  517.  
  518. BUGFIX    The timezone conversion functions sometime caused illegal
  519.     dates on virtual files. This could confuse Cute-FTP so that
  520.     the files was not displayed in the directory listing.
  521.     Fixed.
  522.  
  523. BUGFIX    (NT) The event log will now resolve the correct message text.
  524.  
  525. BUGFIX    The server could in some situations close incoming file transfers
  526.     before the files were completly uploaded.
  527.     Fixed.
  528.  
  529. BUGFIX    Resume of upload should now work.
  530.  
  531.  
  532. -------------------------------------------
  533. V. 1.32x experimental BETA Oct. 15. 1996
  534. -------------------------------------------
  535.  
  536. The server now use the MSVC 4.2b with update patch from MS. This
  537. includes new dll's. (again...)
  538.  
  539. ADDED    SITE SHOW command to display the server console when the
  540.     server is running as a system service under NT. The server
  541.     must be configures to run in "Interactive" service mode
  542.     for this to work, and NT must allow interactive services.
  543.     This new command can be used to configure the server when
  544.     it runs as a service.
  545.  
  546.     Note: You must log in to the server from a FTP client
  547.     as a FTP user in the class "sysadmin". Then issue the
  548.     QUOTE SITE SHOW command (or define a custom command
  549.     if you use Cute-FTP) to bring up the server console.
  550.  
  551.     THE SERVER WILL NOT DISPLAY THE TASKBAR ICON. This is
  552.      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  553.     done by purpose since the service don't "belong" to the
  554.     user currently logged on to the NT desktop.
  555.  
  556. BUGFIX    I traced down a bug in the pattern matching function that
  557.     might be the cause of the reported problems with banned
  558.     files and upload verification. I *hope* this is fixed.
  559.  
  560. BUGFIX    In 1.31x the server would not report the correct number
  561.     of users online.
  562.     Fixed.
  563.  
  564. -------------------------------------------
  565. V. 1.31x experimental BETA Sept. 29. 1996
  566. -------------------------------------------
  567.  
  568. The server now use the MSVC 4.2a with update patch from MS. This
  569. includes new dll's.
  570.  
  571.  
  572. BUGFIX    Now allows '@' in user names to allow multihoming
  573.     users (was disabled a few releases ago...)
  574.  
  575. TESTED    I had a report that banned files did not get banned,
  576.     ie. *.txt in the banned list would still allow text
  577.     files to be uploaded.
  578.     I found no bugs here. Make sure that banned files
  579.     are added to the correct level. If you ban file names
  580.     on user "garfield", the banning will only apply for
  581.     this user. In general, banned files should be
  582.     defined on the "default" level.
  583.  
  584. TESTED    There is reported to be a memory leak in 1.30x. I have
  585.     not been able to find any such leak, so it might be
  586.     bugs in the MFC libraries. The libraries are updated
  587.     in 1.31x. The only known memory leak are a due to a
  588.     bug in MFC when a thread is waiting for more than 
  589.     8 events. This can be avoided by using 5 or less
  590.     ls-threads.
  591.  
  592. -------------------------------------------
  593. V. 1.30x experimental BETA Sept. 17. 1996
  594. -------------------------------------------
  595.  
  596. I have tried to track down a bug that cause the server to
  597. crash in the sockets subsystem - with no luck.
  598. To help out some of you that are waiting for the bugfixes
  599. below I release this version now. New versions with more
  600. features and improvements can be expected in the *near*
  601. future.
  602.  
  603.  
  604. ADDED    Option to turn reverse DNS lookup on/off. (It is set
  605.     off by default).
  606.  
  607. CHANGE    Now using MSVC++ 4.2. Several new dll's in the
  608.     distribution.
  609.  
  610. CHANGE    The server will now use the *modification* date
  611.     as file date. In previous versions it used the
  612.     creation date.
  613.  
  614. BUGFIX    Deletion of files sometimes failed when the 
  615.     virtual file system was used because the server
  616.     forgot to delete empty .Index.txt files.
  617.     Fixed.
  618.  
  619. BUGFIX    The server would shut down file transferes if the
  620.     "Go offline when ready" button was pressed.
  621.     Fixed.
  622.  
  623. BUGFIX    Sometimes the server would move files into the
  624.     servers home directory when it was told to
  625.     *rename* the file.
  626.     Fixed.
  627.  
  628. BUGFIX    Some fixes in VfSys when loading/flushing empty
  629.     directories.
  630.  
  631. BUGFIX    War would not show directories/files if the
  632.     first file/dir in a directory was denied
  633.     to the user due to UNIX/VfSys permissions.
  634.     Fixed.
  635.  
  636. ------------------------------------------
  637. V. 1.29x experimental BETA August 4. 1996
  638. ------------------------------------------
  639.  
  640. ADDED    ls -d option to support ncftp "get -R"
  641.  
  642. ADDED    Copy User and Rename User in the Security
  643.     tab (User maintainance).
  644.     Copy User will create a new user with
  645.     all the properties of the selected user,
  646.     except username and password.
  647.  
  648. ADDED    Auto-rescan option for VfSys to ease dupe 
  649.     checking on systems where files    might be added 
  650.     from other applications (like BBS systems).
  651.     The scanning will be done in a defined
  652.     time interval, and only when no users are 
  653.     listing directories.
  654.     Note: During the rescan the server will
  655.     "hang". I could have added a thread to
  656.     do the scanning, but the disk/IO is so intense
  657.     during this operation that another tread would
  658.     just have slowed down the overall performance.
  659.  
  660. ADDED    [$dirmsg] macro to display the directory change
  661.     message. This macro is automatically called when
  662.     the user log in and when he change directory.
  663.  
  664. CHANGE    Help via F1 was disabled in release 1.26x.
  665.     It is now re-enabled.
  666.  
  667. CHANGE    Usernames are now restricted to 'a' - 'z' and
  668.     '0' - '9'. Other letters will be refused.
  669.     The current user database is not affected.
  670.  
  671. CHANGE    If the "Go offline when ready" checkbox on the 
  672.     console is checked the user will be logged off
  673.     as soon as the current file transfer is
  674.     completed.
  675.  
  676. CHANGE    When the Upload Veryfier renames a file, it is 
  677.     now updated in VfSys.
  678.  
  679. CHANGE    If a user is rejected due to a banned IP address
  680.     he will now be thrown off after the password is
  681.     given with a "Bad Password" message.
  682.     This makes it a little harder for the hackers
  683.     to determine how they should proceed :-)
  684.  
  685. BUGFIX    The Pattern mathing function failed when
  686.     the pattern was set to *.zip and the path
  687.     contained a . character.
  688.     This bug could affect the Upload Verification
  689.     module, the Banned File and the Dupe Checker.
  690.     Fixed
  691.  
  692. BUGFIX    Sessions that "hangs" after a user has lost
  693.     his connection while up or downloading are
  694.     was not timing out.
  695.     Fixed.
  696.  
  697. BUGFIX    The "mysterious" N4 (and Nt 3.51) bug where
  698.     the server crashed on some system when the
  699.     DIR command was given in the root directory
  700.     is found and fixed.
  701.     
  702.  
  703. ----------------------------------------
  704. V. 1.28x experimental BETA July 24. 1996
  705. ----------------------------------------
  706.  
  707. CHANGE    I did a little testing on NT with different thread
  708.     priorities to optimize performance when several 
  709.     large directory listings were built.
  710.     The best overall performance was achieved by 
  711.     lowering the priority of the threads that build
  712.     the directory listings whenever they kept the
  713.     shared data segments of VfSys unlocked. I
  714.     raised the priority whenever they accessed shared
  715.     memory to avoid situations where the main
  716.     thread would block, waiting for write access
  717.     to VfSys and one ore more lower priority threads
  718.     kept a read lock on it but was blocked by NT,
  719.     waiting for higher priority processes to 
  720.     complete their work.
  721.     So the new design is:
  722.  
  723.       Main thread
  724.            |
  725.            | Request data and continue with other users
  726.            |
  727.            v
  728.           Ls thread
  729.            |
  730.           Lower proirity and initialize
  731.            |
  732.            +-> Raise priority
  733.      loop      Get VfSys Data for one directory
  734.            +-< Lower priority
  735.            |
  736.           Make a nice looking directory listing
  737.            |
  738.           Send a notification to the main thread about the 
  739.           completion of the request
  740.            |
  741.           Raise priority
  742.           Loop back to start and wait for new requests.
  743.  
  744.     This gave an acceptable performance with NT on a 
  745.     single CPU system, and will probarbly boost
  746.     performance on a multiprocessor system.
  747.  
  748.     Windows95 did not like to change the
  749.     priority all the time. I guess that the kernel 
  750.     code for this is *very* inefficient, involving 
  751.     physical memory transfers and relinking of the
  752.     threads protected memory data, and several
  753.     context switches. The performance fell by
  754.     ~1000% on my worst case test.
  755.  
  756.     This might be fixed in future versions of Win95, so
  757.     I have added options to set the number of ls threads
  758.     and "Optimal", "Mixed" and "Fixed" priority. This
  759.     option is located in the File System Options tab.
  760.     
  761.       Mixed    - NT Mode where the priority is changed
  762.       Fixed    - The priority remains the same as the
  763.                      main therad.
  764.           Optimal  - A qualified guess made by the server 
  765.                      on what to do - based on the actual
  766.                      operating system and version.
  767.  
  768.     The number of ls therads are the maximum number the
  769.     server will use. When it start up it initialize one
  770.     thread. When a user issues a LIST command the server
  771.     checks if there are idle ls threads. If one (ore more)
  772.     threads are idle, it gets the request.
  773.     If no threads are idle (all are processing LIST commands)
  774.     the server checks if it can initiate a new therad and 
  775.     does so if the number of ls threads are less than the
  776.     defined maximun.
  777.     If the maxuimun number of ls threads are running, it
  778.     checks how many pending requests there are on each
  779.     thread, and if they perform a simple or recursive
  780.     directory listing. It then queues the request to the
  781.     thread that most likely will finish it's current tasks
  782.     first and continue processing on other users.    
  783.     (The "hold" state of the user in the user list can
  784.     mean that the user has a pendinng reuest on a ls
  785.     thread).
  786.  
  787.     In the current version I have set the system defined
  788.     maximum to 30 threads. The server can handle up
  789.     to about 60 threads with the current design, but too
  790.     many threads will add a significant overhead both in
  791.     NT and in the servers locking functions for shared
  792.     memory.
  793.     There is also a bug in the Microsoft SDK that leads
  794.     to a small memory leak if more than 8 therads places
  795.     a read lock on a shared data segment, and one therad
  796.     waits for write access. (WaitForMultipleObjects).
  797.     The number of LS threads should therefore be 5 or
  798.     less.
  799.  
  800.  
  801. CHANGE    I had reported that the server "froze" under 
  802.     Win95 when large partitions were loaded
  803.     into VfSys and VfSys was shut down.
  804.     The problem turned out to be a bug in Win95
  805.     when allocating large number of memory buffers.
  806.     Windows 95 simply ran out of system resources
  807.     and was unable to release the buffers. In stead
  808.     it froze the server, and then other programs
  809.     as well.
  810.     I performed a benchmark with ~26,000 files and
  811.     verified the problem.
  812.     I rescheduled the memory optimizing of VfSys 
  813.     and implemented my own memory allocation 
  814.     functions. As a result large partitions works 
  815.     fine with Win95 and memory usage is reduced by 67%.
  816.     Under NT the operating system used 10,400 KB
  817.     to store the 26,000 file names and the global
  818.     data segments for the server.
  819.     With my memory functions this was reduced to 
  820.     3,432 Kb.
  821.     It also gave a nice side effect of even faster
  822.     loading of the VfSys:
  823.  
  824.     Load VfSys in version 1.26x 95940 ms (95.9 sec)
  825.     Load VfSys in version 1.27x 45135 ms (45.1 sec)
  826.     Load VfSys in version 1.28x 24015 ms (24.0 sec)
  827.     
  828.  
  829. ----------------------------------------
  830. V. 1.27x experimental BETA July 23. 1996
  831. ----------------------------------------
  832.  
  833. ADDED    Support in VfSys to handle comments and UNIX
  834.     attributes on read only directories and drives
  835.     (CD-ROM).
  836.  
  837. CHANGE    VfSys can now be used when War is running as a 
  838.     NT Service. The shutdown function has support
  839.     for fast shutdown and will in most cases 
  840.     complete the shutdown process in a few seconds.
  841.     (Normal shutdown is a little slower as it will
  842.     release all used memory and other resources.)
  843.  
  844. CHANGE    Optimized the Virtual file system. Reduced load
  845.     time by ~50% and decreased flushing time from 
  846.     several minutes (worst case) to ~ 10 - 100 ms.
  847.  
  848.     The following benchmark is performed on a Intel
  849.     Pentium 120 MHz based standard clone PC with
  850.     2 x Quantum Fireball IDE 1.3 GB drives and 48 MB
  851.      RAM running NT 4.0 Server. 
  852.     (25968 files in 1107 directories loaded)
  853.  
  854.     Load VfSys in version 1.26x 95940 ms (95.9 sec)
  855.     Load VfSys in version 1.27x 45135 ms (45.1 sec)
  856.  
  857.     Also reduced memory usage and memory fragmentation
  858.     when running VfSys.
  859.  
  860. ----------------------------------------
  861. V. 1.26x experimental BETA July 21. 1996
  862. ----------------------------------------
  863.  
  864. ADDED    NT Service support.
  865.     The server can now run as a native Windows Nt service.
  866.     This feature is still at an early stage. I just wanted
  867.     to know if this service implementation is so hard to
  868.     do as people claim. It is not. The current
  869.     implementation was done in just a few hours :-)
  870.  
  871.     In order to run it as a server, follow these steps:
  872.  
  873.       1) Log in to NT as *Administartor*.
  874.       2) Start the server as usual.
  875.       3) Open the Options/NT tab.
  876.       4) Select startup mode and (optionally)
  877.          an user account.
  878.       5) Press the [Update] button.
  879.           6) Exit War.
  880.  
  881.     War will now be configured as a service. You can
  882.     start it from the Service Manager. It support the
  883.     following Service Manager commands:
  884.  
  885.       Start     - Starts up    
  886.       Stop      - Logs all users off and terminates
  887.       Pause     - Goes offline
  888.       Continue  - Goes online
  889.  
  890.     Limitations/bugs:
  891.  
  892.       There is no way to access or configure the server when it 
  893.       is running as a service. 
  894.  
  895.       DO NOT USE VFSYS WHILE RUNNING IN SERVICE MODE. VFSYS
  896.       USES TOO LONG TIME TO FLUSH THE BUFFERS WHEN THE MACHINE
  897.       SHUTS DOWN. You can use VfSys if you manually stop the
  898.       server before shutting down the machine.
  899.  
  900.       No control panel applet is available at the moment.
  901.  
  902.       The Event Log messages make no sense at the moment. 
  903.       However, both the regular log and the WU-FTPD log are
  904.       all right.
  905.  
  906.     Notes:
  907.  
  908.       When War is installed as a service it will try to start
  909.       as a service also when started as a normal application. 
  910.       This gives a delay of ~30 seconds from you start War
  911.       until it shows up.
  912.  
  913.       In order to confugure War when it is running as a service, 
  914.       go to the Service Manager in the control panel and stop
  915.       "WAR-FTPD". Then you can start the server as usual and
  916.       do the configurations. When you are done, terminate War
  917.       and start it again as a service from the Service Manager.
  918.       
  919. ADDED    Telnet command recognition in the FTP command parser.
  920.     This option is added to handle FTP clients that prefix
  921.     the ABOR command with Telnet codes.
  922.  
  923. BUGFIX    When running vfsys the Free Diskspace option always reported
  924.     "Low on free diskspace".
  925.     Fixed.
  926.     
  927.  
  928. ----------------------------------------
  929. V. 1.25x experimental BETA July 20. 1996
  930. ----------------------------------------
  931.  
  932. BUGFIX    Minor bugfix in the modified pattern matching
  933.     module.
  934.  
  935.  
  936. ----------------------------------------
  937. V. 1.24x experimental BETA July 20. 1996
  938. ----------------------------------------
  939.  
  940. ADDED     UNIX WU-FTPD compatible log file in addition
  941.     to the current War log file.
  942.     There should be tons of scripts available
  943.     to process this new log file and make all
  944.     kind of fancy reports :-)
  945.  
  946. ADDED     [$diskfree] macro. Reports free KB on the
  947.     (users) current drive.
  948.  
  949. ADDED    test for free diskspace before accepting
  950.     upload. The requiered free space can be set in
  951.     the File System options tab.
  952.  
  953. ADDED    Copy option to the Upload Verification
  954.     dialog.
  955.  
  956. CHANGE    Modified the Path report to mark *all* inactive
  957.     paths as inactive, not just the paths unresolved
  958.     by VfSys.
  959.  
  960. CHANGE    Modified the path parser to support non-mapped
  961.     paths if a parent path is mapped.
  962.        C:\                     +root +home +map
  963.            D:\ftp                  +map
  964.            D:\ftp\incoming
  965.     The incoming directory will now be recognized
  966.     as /ftp/incoming and the attributes will apply.
  967.     In previous versions, each path that was defined
  968.     ouside the root path had to be mapped to root.
  969.     Note: If you want to give access to a path
  970.     outside the users root path, the lowest level path
  971.     still *has* to be mapped. 
  972.     War woun't allow any absolute paths ouside the root
  973.     path.
  974.  
  975. CHANGE    The entire source code (all 26.735 lines)
  976.     was reviewed and partially modified to
  977.     handle a MSVC++ 4.1 code generation
  978.     error that can cause GPF's.
  979.  
  980. CHANGE    The log dialog is moved to the Options tab.
  981.     The dialog is also modified.
  982.  
  983. CHANGE    Change in LIST parameter processing.
  984.     The LIST command will now always use
  985.     long listing format, also if the user
  986.     specify -1 or -C on the command line.
  987.     This is not logical, but comforms with
  988.     the behavior on UNIX servers.
  989.     Use the NLST (ls) command if you want
  990.     to use short or multicoloumn format.
  991.  
  992. BUGFIX    When only 1 session was allowed on a user 
  993.     account, pr. IP, the user was denied login
  994.     even if he was not previously logged on.
  995.     Fixed.
  996.  
  997. BUGFIX    The server was a little paranoid with the
  998.     X:\ root directory. If a drive root was
  999.     the root path for a user, the user was
  1000.     denied access to any subdirectory.
  1001.     This bug was introduced with the 1.03x
  1002.     version.
  1003.     Fixed.
  1004.  
  1005. BUGFIX    In version 1.23x a new bug was introduced:
  1006.     Mapped dirs was displayed several times.
  1007.     Fixed.
  1008.  
  1009. BUGFIX    A dead lock situation was detected when
  1010.     manualy restarting VfSys while there was
  1011.     users online, and they performed directory
  1012.     listings.
  1013.     Fixed.
  1014.  
  1015. BUGFIX    The console sometimes claimed to be "offline"
  1016.     just after the server was started, and
  1017.     it actually was "online".
  1018.     Fixed.
  1019.  
  1020. ----------------------------------------
  1021. V. 1.23x experimental BETA July 18. 1996
  1022. ----------------------------------------
  1023.  
  1024. ADDED    More threads on slow IO. Up to 6 threads can now work
  1025.     together to speed up slow IO access upon directory listings,
  1026.     in addition to the two primary processing threads (that 
  1027.     never perform any slow IO operations, except when they
  1028.     flush VfSys or the user database).
  1029.  
  1030. CHANGE    Internal design change in the locking scheme for multithread
  1031.     access to shared memory. The new scheme taks a little more 
  1032.     CPU usage, but make the server run significatly faster when
  1033.     there are many users online.
  1034.  
  1035. BUGFIX    A dead lock situation was detected. The server could go into
  1036.     a "dead lock" when two threads incrementally placed
  1037.     a lock on the same objects.
  1038.     Fixed.
  1039.  
  1040. ----------------------------------------
  1041. V. 1.22x experimental BETA July 16. 1996
  1042. ----------------------------------------
  1043.  
  1044. ADDED    Upload verification processing script option.
  1045.     The server can now start external programs to
  1046.     perform CRC checks (or other validiation) on
  1047.     incoming files prior to accepting the file.
  1048.     It can also extract file_id.diz or perform other
  1049.     processing on the incoming file.
  1050.  
  1051. BUGFIX    A minor bug in the low level read function that
  1052.     reads the fields in the user database was detected
  1053.     and fixed.
  1054.  
  1055. ----------------------------------------
  1056. V. 1.21x experimental BETA July 13. 1996
  1057. ----------------------------------------
  1058.  
  1059. ADDED     Import of Serv-U database.
  1060.  
  1061. ----------------------------------------
  1062. V. 1.20b BETA July 11. 1996
  1063. ----------------------------------------
  1064.  
  1065. ADDED    Contents file to the online help.
  1066.  
  1067. BUGFIX    The dupe checker was a little paranoid
  1068.     and refused files that was defined in
  1069.     the dupe exception list without a 
  1070.     leading *.
  1071.     Fixed.
  1072.  
  1073. ----------------------------------------
  1074. V. 1.04x experimental BETA July 10. 1996
  1075. ----------------------------------------
  1076.  
  1077. ADDED    Installation program with the distribution
  1078.  
  1079. BUGFIX    REST (resume command) did not always reset
  1080.     the start offset to 0 after the transfere,
  1081.     or when the FTP client did not initiate a
  1082.     transfer immediately.
  1083.     This bug caused incompatibility with Cute FTP
  1084.     version 1.5.
  1085.     Fixed.
  1086.  
  1087. BUGFIX    An error recovery function in the file send
  1088.     module caused the server to crash.
  1089.     Fixed.
  1090.     
  1091.  
  1092. ----------------------------------------
  1093. V. 1.03x experimental BETA July 9. 1996
  1094. ----------------------------------------
  1095.  
  1096. ADDED    Disable banner checkbox in the welcome dialog.
  1097.  
  1098. CHANGE    The format of the physical .Index.txt file has
  1099.     changed. See the online documentation for
  1100.     details.
  1101.  
  1102. BUGFIX    Netscape failed to download files from the root
  1103.     path when the Virtual File System was running,
  1104.     and the physical directory not was assigned to
  1105.     a logical name.
  1106.     Fixed.
  1107.  
  1108. BUGFIX    The [$credit] macro did always show the KB
  1109.     ratio relation, also when the Up/Download
  1110.     mode ws set to files.
  1111.     Fixed.
  1112.  
  1113. BUGFIX    If user or class was changed from the View Virtual 
  1114.     File System dialog, the new data was not always 
  1115.     saved.
  1116.     Fixed.
  1117.  
  1118. BUGFIX    When running the Virtual File System, directories
  1119.     was not physically deleted when a user sent a
  1120.     DELE command.
  1121.     Fixed.
  1122.  
  1123. BUGFIX    If the Virtual File System was restarted while
  1124.     a user was uploading a file, the file would appear
  1125.     twice in the directory listing sent to the
  1126.     user.
  1127.     Fixed.
  1128.  
  1129. BUGFIX    A minor security problem was reported.
  1130.     Fixed.
  1131.  
  1132. BUGFIX    It was not possible to edit an alias name in
  1133.     the FILE ACCESS TAB if the original directory
  1134.     name was only one character long.
  1135.     Fixed.
  1136.     Note: Alias names *must* be 2 or more charactres
  1137.     long. If a name is invalid, the server will 
  1138.     change it to a valid name.
  1139.  
  1140. BUGFIX    The server would crash if a pathnames was
  1141.     too long.    
  1142.     Fixed.
  1143.  
  1144. BUGFIX    Multi-segment lines made the server strip
  1145.     off command parameters.
  1146.     Fixed.
  1147.  
  1148. ----------------------------------------
  1149. V. 1.02x experimental BETA July 7. 1996
  1150. ----------------------------------------
  1151.  
  1152. BUGFIX    When running the virtual file system, deleted
  1153.     files would not always be physical erased
  1154.     from the disk, althoug they appered to be
  1155.     deleted in the servers directory listings.
  1156.     Fixed.
  1157.  
  1158. BUGFIX    When the virtual file system was running,
  1159.     it was not possible to upload files to
  1160.     the first directory level in the root path.
  1161.     Fixed.
  1162.  
  1163. BUGFIX    CD .. would in some situations give
  1164.     "Permission denied" when issued from a
  1165.     mapped directory.
  1166.     Fixed.
  1167.  
  1168. ----------------------------------------
  1169. V. 1.01x experimental BETA June 28. 1996
  1170. ----------------------------------------
  1171.  
  1172. ADDED    Dupe exceptions in the Banned Files tab.
  1173.  
  1174. ADDED    Account session time limit
  1175.  
  1176. ADDED    Max simultaneous logins for an account based on
  1177.     the callers IP number. You can now allow 30
  1178.     anonymous users, but only 1 or 2 sessions for
  1179.     each physical user.
  1180.  
  1181. ADDED    Options/File System Options
  1182.     Links are now shown as files by default (ls -L). This
  1183.     option can be turned off.
  1184.  
  1185. CHANGE    The system options on the main console will no longer
  1186.     be hidden if the console is resized.
  1187.     
  1188. BUGFIX    When VfSys was running and the root directory was
  1189.     somewhere down the path, and mapped, the command
  1190.     CD /SOMEDIR could fail.
  1191.     Fixed.
  1192.  
  1193. ------------------------------
  1194. V. 1.0b BETA June 23. 1996
  1195. ------------------------------
  1196.  
  1197.  
  1198. ADDED    Help.
  1199.  
  1200. BUGFIX    WEB browsers had problems listing directories
  1201.     on sites that diod not use the Virtual File 
  1202.     System.
  1203.     Fixed.
  1204.     
  1205.  
  1206. ------------------------------
  1207. V. 0.19a ALPHA June 21. 1996
  1208. ------------------------------
  1209.  
  1210. I have now fixed all reported bugs that I have been able
  1211. to reproduce. Please report any problems.
  1212.  
  1213.  
  1214. CHANGE    The "User and paths" report hide any path
  1215.     deactivated by VfSys. They will now show
  1216.     up as "INACTIVE". Also, the 'R' and 'H'
  1217.     flags will now show the users real 
  1218.     Root and Home paths (and not all the paths
  1219.     that had the Home or Root flag set).
  1220.  
  1221. BUGFIX    FTP clients that split the command messages
  1222.     into several TCP packages could both confuse and
  1223.     make the server crash.
  1224.     Assumed fixed (I can't test it).
  1225.  
  1226. BUGFIX    The FTP command parser used a 256 byte buffer.
  1227.     The recommended size is "at least" 4 KB.
  1228.     Buffer size increased to 8 KB.
  1229.     (And to the hackers...: Sorry, you can't
  1230.     overload that buffer :-)
  1231.  
  1232. BUGFIX    The OLE support for .lnk shortcuts (if not
  1233.     using VfSys) was broken when the server went
  1234.     multithreading (0.14a).
  1235.     Fixed.
  1236.  
  1237. BUGFIX    If you had VfSys running, created a new user,
  1238.     and then added some paths for the user, the
  1239.     paths would simply disappear the next time
  1240.     the server was started.
  1241.     The problem was that a flag that tells the
  1242.     save() function to convert from VfSys paths
  1243.     to DOS paths was not set correctly. The
  1244.     paths was saved as VfSys paths and therefore
  1245.     invalid. If you have seen this problem
  1246.     do the following:
  1247.       1) Take the server off-line
  1248.       2) Stop VfSys
  1249.       3) Go trough the users and delete
  1250.          any non-DOS path (except "\").
  1251.     The problem is now fixed.
  1252.  
  1253. BUGFIX    When running without VfSys, and a X:\ style
  1254.     path was root, mapped directories would
  1255.     not show up in the directory listing.
  1256.     Fixed.
  1257.  
  1258. BUGFIX    When running without VfSys, and the root dir
  1259.     was not mapped, CD / would fail.
  1260.     Fixed. (It now maps to the root path).
  1261.  
  1262. BUGFIX    When using Netscape Navigator, you sometimes
  1263.     had to re-load the page to see the directory-
  1264.     listing. 
  1265.     Fixed.
  1266.  
  1267. BUGFIX    Sometimes mapped directories would show up in the
  1268.     directory listings as *files*, not directories.
  1269.     Fixed.
  1270.  
  1271. ------------------------------
  1272. V. 0.18a ALPHA June 17. 1996
  1273. ------------------------------
  1274.  
  1275. ADDED    SITE: WHO SHUTDOWN ENABLE DISABLE MSGU OPEN
  1276.     CLOSE ANON KICK
  1277.     Also: "HELP SITE"
  1278.  
  1279. ADDED    Security tab for Site commands completed.
  1280.  
  1281. ADDED    Sound support on some events. You can visit
  1282.     http://www.sky.net/~jdeshon/joewav.html for a
  1283.     large number of cool sounds to use.
  1284.  
  1285. BUGFIX    The multithreading support in the Virtual File System
  1286.     sometimes caused the old cache to remain allocated when
  1287.     it was restarted. (Problems with the Lock counters).
  1288.     This could lead to a huge waste of memory and also
  1289.     loss of information (uploader, download count etc.)
  1290.     Fixed.
  1291.  
  1292. BUGFIX    NT did not always flush the VfSys .Index.txt files,
  1293.     causing information (uploader, download count etc.)
  1294.     to be lost.
  1295.     Fixed
  1296.  
  1297. BUGFIX    If a user issued a SITE command when the spy
  1298.     windows was active, the server could crash.
  1299.     Fixed
  1300.  
  1301. BUGFIX    Sometimes the server would crash when spying on users
  1302.     while they logged on.
  1303.     Fixed
  1304.  
  1305.  
  1306. ------------------------------
  1307. V. 0.17a ALPHA June 16. 1996
  1308. ------------------------------
  1309.  
  1310. ADDED    Tool-tip for the toolbar.
  1311.  
  1312. ADDED    Clear log-window command.
  1313.  
  1314. ADDED     System Priority to the Options tab.
  1315.  
  1316. ADDED    Feature to prevent the server from starting several
  1317.     instances of the program from the same directory.
  1318.  
  1319. CHANGE    In the current design of the File Access tab
  1320.     there are some ambigous situations.
  1321.     If the \ path is defined as roor + home, all
  1322.     users will have access to all files, also
  1323.     unprivileged users with another root path.
  1324.     I have now denied access to un-mapped
  1325.     paths before the users root-level, if the
  1326.     root path has the mapping flag set.
  1327.     In other words: If you have given a default
  1328.     path of \ + root, and anonymoys \ftp\files + root
  1329.     + map, the anonymous user will not get access to 
  1330.     anything above \ftp\files, unless the paths are
  1331.     mapped. If they are mapped, they will show up
  1332.     as links in the users root directory 
  1333.     (\ftp\files\path)
  1334.  
  1335. BUGFIX    Removed some minor memory leaks. (< 1 KB total)
  1336.  
  1337. BUGFIX    Corrected the header name for sysmsg6.txt in the
  1338.     View Messages tab.
  1339.  
  1340. BUGFIX    DOS paths like C:\ + map did not show up in the
  1341.     listings in the users root-dir.
  1342.     Fixed.
  1343.  
  1344. BUGFIX    The rename function in the server would move files
  1345.     to the servers home directory, rather than renaming
  1346.     the files when running without the VfSys.
  1347.     Fixed.
  1348.  
  1349. BUGFIX    Removed a ':' after 'total' in the LIST output to
  1350.     make Netscape Navigator even more happy.
  1351.     
  1352.  
  1353. ------------------------------
  1354. V. 0.16a ALPHA June 11. 1996
  1355. ------------------------------
  1356.  
  1357. ADDED    Validiation of "email as password". The server
  1358.     does a basic check to ensure that the password
  1359.     has a email-like syntax (something@).
  1360.     WWWuser@ will be accepted.
  1361.  
  1362. BUGFIX    There was a bug in VfSys's links when the links
  1363.     was to directories. CD worked all right, but 
  1364.     the list command would sometimes show partially
  1365.     listings of the parent dir.
  1366.     Fixed.
  1367.  
  1368. BUGFIX    Deletion of directories did not work.
  1369.     Fixed.
  1370.  
  1371. BUGFIX    If VfSys was not running and you had "\" as root path, 
  1372.     the intetranl path repersentation would be wrong on
  1373.     mapped paths, causing all files to be unavailable for
  1374.     access.
  1375.     Fixed.
  1376.  
  1377. BUGFIX    Fiexd a problem with the drive paths showing up as
  1378.     /c /d etc. if "\" was root dir and VfSys was not running.
  1379.  
  1380.  
  1381. TEST    I got a report that there is a 45 sec. delay from 
  1382.     the password is given to the user get logged in when
  1383.     the server is running under NT 3.51.
  1384.     I am not able to reproduse this delay.
  1385.  
  1386. ------------------------------
  1387. V. 0.15a ALPHA June 10. 1996
  1388. ------------------------------
  1389.  
  1390. Note: I finally changed the name. The name of the server is
  1391. war-ftpd. From now on the .zip file will contain the version 
  1392. number.
  1393.  
  1394. Note: The setup information is moved from tFTPd32.ini to
  1395. FtpDaemon.ini, and many of the option names has changed.
  1396. When you install the new version, you must go into the
  1397. Properties/Options tab and configure the system.
  1398.  
  1399. ADDED    Minimize option at startup
  1400.  
  1401. ADDED    Password protection of the servers main window.
  1402.     If you enable this option, you must have a 
  1403.     login account (FTP user) that belong in the
  1404.     Sysadmin class, and you better remember his
  1405.     password :-)
  1406.     If you fail to get the main window back, shut
  1407.     down the server from the tray-icon menu and
  1408.     set the "Protected" value in FtpDaemon.ini
  1409.     to 0.
  1410.  
  1411. ADDED    Option to disable recursive directory listings
  1412.  
  1413. ADDED    Option to disable output of the download counter
  1414.     on the files in a directory.
  1415.     (The download count shows up in the .Index.txt
  1416.     files and if the user calls LIST -I)
  1417.  
  1418. CHANGE    Moved most of the setup dialogs to a new tab.
  1419.  
  1420. BUGFIX    Removed a possible cause of access violation.
  1421.  
  1422. BUGFIX    Some minor bugs are fixed.
  1423.  
  1424. ------------------------------
  1425. V. 0.14.1a ALPHA June 9. 1996
  1426. ------------------------------
  1427.  
  1428. ADDED    Multicolumn "-C" option to LIST
  1429.  
  1430. ADDED    DOS path to the SPY dialog when running VfSys.
  1431.  
  1432. ADDED    MDTM command. Reports the filedate in ascii. This is
  1433.     used by some FTP clients and WEB browsers.
  1434.  
  1435. ADDED    TYPE L 8 command is now recognized. Used by some
  1436.     MAC FTP clients.
  1437.  
  1438. CHANGE    Added better precision on the KB/Sec upload/
  1439.     download info.
  1440.  
  1441. BUGFIX    The Dupe Checker did not work.
  1442.     Fixed
  1443.  
  1444. BUGFIX    VfSys was not able to follow it's own paths when
  1445.     a directory was a link.
  1446.     Fixed
  1447.  
  1448. BUGFIX    If the VfSys path was "C:\;d:\" (in stead of
  1449.     "C:\,c-drive;D:\,files") users
  1450.     would be refused on login with the message
  1451.     "Access denied to homedir".
  1452.     Fixed
  1453.  
  1454. BUGFIX    The VfSys would flush each second in stead of
  1455.     each 7. minute. 
  1456.     Fixed
  1457.  
  1458. BUGFIX    If the users root dir was \ and it was mapped, 
  1459.     the paths reported by PWD would be wrong.
  1460.     Fixed.
  1461.  
  1462. BUGFIX    Fixed problem with long response messages
  1463.     that were broken up without sending a '-' after
  1464.     the response number.
  1465.  
  1466. BUGFIX    Removed empty lines in response messages.
  1467.  
  1468. BUGFIX    Removed a trailing 0 in the LIST output. This
  1469.     zero caused big problems with ncftp.
  1470.  
  1471. ------------------------------
  1472. V. 0.14.a ALPHA June 5. 1996
  1473. ------------------------------
  1474.  
  1475. The big news this time is the new Virtual File System.
  1476. Please note that the .Index.txt file format has changed and
  1477. that the server no longer will understand the old format.
  1478. (This does not affect the user database and the information
  1479. stored there).
  1480. Please read the page describing the Virtual File System in the
  1481. supplied documentation file (tFTPd32.rtf).
  1482.  
  1483. I expect this release to be buggy and unreliable. Please report 
  1484. any problems. New versions will be available rapidly in the next
  1485. two weeks. But I need to get the problems reported before I can
  1486. fix them :-)
  1487.  
  1488. Note: The UNIX ln command was announced for this verion. There
  1489. were some problems, so the command will have to wait a bit.
  1490.  
  1491.  
  1492. ADDED    Multithreading.
  1493.  
  1494. ADDED    Full pattern matching and recognition of most UNIX
  1495.     ls line parameters on the LIST command.
  1496.     Note: Multi-coloum output and sorting are still not
  1497.     ready.
  1498.     Mget should now work 100%.
  1499.  
  1500. ADDED    Site commands for simplified implementations of the
  1501.     following UNIX commands: chmod, chgrp, chown
  1502.  
  1503. ADDED    Free Download of selected files (require the Virtual
  1504.     File System to be running).
  1505.     Note: Statistics are not counted for free files.
  1506.  
  1507. ADDED    Dupe checker. The dupe checker will only work when the 
  1508.     virtual file system is running.
  1509.     (The dupe checker will deny upload of filenames that
  1510.     are known by the virtual file system if the "deny" option
  1511.     is enabled in the Properties/Security/Banned Files tab.)
  1512.  
  1513. ADDED    Popup-menu when right clicking on the tray icon.
  1514.  
  1515. CHANGE    The log will now only be opened when there are data to
  1516.     be written.
  1517.  
  1518. CHANGE    The logfile is now only opened when there is something
  1519.     to write to the log.
  1520.  
  1521. CHANGE    When the user database is saved the server now writes to
  1522.     a temporary file. When the file is successfully written
  1523.     the old database file is saved with the name
  1524.     "FtpDaemon.dat.bak".
  1525.  
  1526. CHANGE    The server no longer gives any message if the user
  1527.     IP is denied by absolute denial in the default setup.
  1528.     Cute-ftp will "hang" until it time out. Ws_ftp will
  1529.     detect that the connection is closed and report
  1530.     "connection failed". I have not tested with other
  1531.     FTP clients. however, this is the way most FTP servers
  1532.     handle denied IP addresses.
  1533.  
  1534. CHANGE    The tooltip text on the tray icon will now show the 
  1535.     port the server is listening to, to ease use of
  1536.     multiple servers.
  1537.  
  1538. CHANGE    Cosmetic change when selecting users in the user list
  1539.     on the main console. You can now select a user by
  1540.     clicing on any coloumn, and the entire row will be
  1541.     colored. Also added sorting of any coloumn by clicking
  1542.     at the coloumn header.
  1543.  
  1544. CHANGE    The Rename functions will now also rename directories
  1545.  
  1546. CHANGE    Resized the toolbar buttons to standard Windows apps.
  1547.     size.
  1548.  
  1549. BUGFIX    Upon receiving, the server would generate a number
  1550.     of wasted internal notification messages.
  1551.     Fixed.
  1552.  
  1553. BUGFIX    Changing a file to a new name, and then back to the     
  1554.     original name would fail due to a bug in one of the
  1555.     standard libraries. 
  1556.     Fixed.
  1557.  
  1558. BUGFIX    The .lnk files would use the DOS 8.3 name conversion
  1559.     for the destrination file.
  1560.     Fixed.
  1561.  
  1562. ------------------------------
  1563. V. 0.13a ALPHA April 6. 1996
  1564. ------------------------------
  1565.  
  1566.  
  1567. UTILITY    Due to some instability in the 0.12a version, I
  1568.     have included the "chksvr" utility in the standard
  1569.     distribution. See chksvr.txt for details.
  1570.  
  1571. CHANGE    [$ulcount] and [$dlcount] will now show files or bytes,
  1572.     depending on the users current U/D restriction type.
  1573.     (There will be added new macros for explicit file and
  1574.     byte information)
  1575.  
  1576. CHANGE    Changed byte counters to be Kbytes counters to allow
  1577.     larger totals. The largest number the counters can
  1578.     keep now are 2,147,483,647 Kbytes.
  1579.     Please verify that the conversion from bytes to Kbytes
  1580.     are done ~right... (Keep a copy of your old database
  1581.     file in case there are bugs - I'll fix this right away).
  1582.  
  1583. CHANGE    Corrected spelling in [$programname] macro
  1584.  
  1585. CHANGE    Resized the width of the main window to fit
  1586.     within 640 x 480 (VGA) resolution. Now all
  1587.     the options are displayed, also on low-res
  1588.     monitors.
  1589.  
  1590. CHANGE    When the Absolute option is used on the default
  1591.     IP access list, the system will no longer scan
  1592.     the default IP access list when verifying if a 
  1593.     user is denied access. This because he not would
  1594.     have made it to the login prompt if he was denied
  1595.     in the default IP access list.
  1596.     Else, If you denied everyone, and let some masks 
  1597.     get trough in the default setup, all users within 
  1598.     the allowed masks would get access, no matter what
  1599.     was specified on the user/group/class level.
  1600.     (The access first scans all the lists for denial,
  1601.     and if the user is denied, all lists for an
  1602.     exception.)
  1603.  
  1604. CHANGE    Added logic to not update the users counters
  1605.     (Upload, Download, Logins etc.) unless these
  1606.     fields actually had been edited, when the user
  1607.     properties was updated. 
  1608.     The side effect of updating it all was that users
  1609.     who were online could get their counters reset to
  1610.     the values present prior to the change, even when
  1611.     the changes were made in the file properties or
  1612.     IP access list.
  1613.  
  1614. BUGFIX    Sometimes the client area of the list-boxes in the
  1615.     User maintenance/Security dialogs was grayed out.
  1616.     I tracked this down to a bug/feature in Windows
  1617.     and instructed windows to leave the areas alone :-)
  1618.     Assumed fixed.
  1619.  
  1620. BUGFIX    Sometimes the server would report en error on
  1621.     successfully uploaded files. I believe this bug
  1622.     was caused by a change in the Winsock design in
  1623.     NT 4.0. 
  1624.     Assumed fixed.
  1625.  
  1626. BUGFIX    When deleting users, the server would crash in
  1627.     some situations (due to an uninitialized pointer).
  1628.     Fixed.
  1629.  
  1630. BUGFIX    PASV would use 127.0.0.1 as the IP address
  1631.     to the server, instead of the actual IP
  1632.     address. The result was that Netscape
  1633.     Navigator/MS Internet Explorer failed to
  1634.     get files.
  1635.     Fixed. It will now use the IP address the
  1636.     user logged in to, thus hiding other IP
  1637.     addresses from users logging in to a virtual
  1638.     multihoming server.
  1639.  
  1640.  
  1641. ------------------------------
  1642. V. 0.12a ALPHA April 30. 1996
  1643. ------------------------------
  1644.  
  1645. Note:     I still have some bugs to work on, but release
  1646.     this version now to help the sites that have
  1647.     had problems with the library bug.
  1648.     A new release with more bugfixes will follow
  1649.     in a day or two...
  1650.  
  1651.  
  1652. ADDED:    Absolute option in Default IP deny list.
  1653.     IP's on the default list will be disconnected
  1654.     at once if this option is set. This makes the
  1655.     server behave like all other FTP servers with
  1656.     IP access lists.
  1657.     The other IP deny/access lists will behave like
  1658.     before. (The server checks the IP number against
  1659.     the user/group/class *and* default list after
  1660.     the user has given his name.)
  1661.     There has been many requests for this dual
  1662.     functionality so I moved it up on my todo-list :-)
  1663.  
  1664. ADDED:    SITE ICON command. Will force the server to add a
  1665.     new system try icon. Added to re-enable contact
  1666.     with the system console after Explorer crash in
  1667.     NT 4.0.
  1668.     This command is only available for users in the
  1669.     "Sysadmin" class.
  1670.  
  1671. TEST:    A problem was reported when deleting groups. I have
  1672.     not been able to reproduce this.
  1673.  
  1674. BUGFIX:    A bug in the Microsoft socket library was verified
  1675.     and a workaround made. The system should now be
  1676.     rock solid on high-impact systems, also under
  1677.     Win95.
  1678.  
  1679.  
  1680.  
  1681. ------------------------------
  1682. V. 0.11a ALPHA April 26. 1996
  1683. ------------------------------
  1684.  
  1685. ADDED:    Multihosting feature. See "Multih.txt" for details.
  1686.  
  1687. CHANGE:    Some cosmetic improvements.
  1688.  
  1689. CHANGE:    Changed the user list from ListBox to ListCtrl/report
  1690.     mode. This was not the trivial task I had thought!
  1691.     Thanks to Microsoft's poor documentation, I spent
  1692.     7 hours before this list started to work. 
  1693.  
  1694.     Note: When the listCtrl looses focus, the selected
  1695.     user is no longer highlighted. I have no idea of
  1696.     how to work around this. To make it a little
  1697.     easier to maintain the users online, I have added
  1698.     a pop-up menu that pops up if you click on a 
  1699.     user # with the right mouse button.
  1700.  
  1701. CHANGE:    Moved system message from Notepad to tabbed dialog.
  1702.  
  1703. BUGFIX:    When using space + '.' in the paths the user could 
  1704.     sometimes get around some of the security checking.
  1705.     Fixed.
  1706.  
  1707. BUGFIX:    When pressing the [EDIT] button in the main window, the
  1708.     server would crash. 
  1709.     Fixed.
  1710.  
  1711.  
  1712. ------------------------------
  1713. V. 0.10a ALPHA April 25. 1996
  1714. ------------------------------
  1715.  
  1716. ADDED:    sysmsg9: Shows status info after up/download.
  1717.  
  1718. ADDED:    Dialog popping up after Killing a user, asking
  1719.     if the user should be refused in the future.
  1720.  
  1721. ADDED:    4 new views of the security dialog.
  1722.  
  1723. TEST:    There has been messages on Usenet about problems with
  1724.     WinSock and large files. I tested transmission of 
  1725.     10MB+ files between a NT Server and my own Win95 PC,
  1726.     running the FTP server on my own machine.
  1727.     I experienced problems with the control channel.    
  1728.     Cute-FTP sometimes failed to receive the directory
  1729.     listing after uploading the lage file. I made some 
  1730.     changes in the FTP engine in the server, without
  1731.     resolving the problem. I was also able to reproduce
  1732.     the problem with other FTP clients. 
  1733.     When I ran the same test under NT, there was no 
  1734.     problems at all. I suspect this error to
  1735.     be in the Win95 Winsock .dll *or* in the C++
  1736.     liberaries I use. If there are bugs in the libraries
  1737.     I will probarbly have to write my own low-level
  1738.     network lib...
  1739.  
  1740. ADDED:    Toolbar
  1741.     Note: I have not been able to get the tooltip feature
  1742.     to work yet.
  1743.  
  1744. CHANGE:    The user list will now show "idle", "Upload" and "Download".
  1745.  
  1746. CHANGE:    The server now looks for a ".message.ftp.txt" in it's
  1747.     startup directory if the file not can be found in the
  1748.     usres current directory.
  1749.     This gives the option of a standard directory change 
  1750.     message    for all dirs that don't have their own message.
  1751.  
  1752. ------------------------------
  1753. V. 0.9a ALPHA April 22. 1996
  1754. ------------------------------
  1755.  
  1756. ADDED:    Reverse DNS lookup. (Has not been able to test it.)
  1757.  
  1758. ADDED:    User Up/Download statistics. (10 on top)
  1759.  
  1760. ADDED:    Bug report form in the help menu. Please use this
  1761.     when reporting bugs. It provides info that speeds
  1762.     up the work of tracing the problems.
  1763.  
  1764. CHANGE:    The user database is flushed to disk every 10 minutes.
  1765.  
  1766. TEST:    I received a report that the password given when a user
  1767.     is created did not work. I was able to reproduce the
  1768.     problem, but when I started to trace it, the problem
  1769.     went away. I have not been able to reproduce it
  1770.     with 0.9a. Please keep an eye on this feature.
  1771.  
  1772. TEST:    I received a report that the server would require 2
  1773.     uploaded files when the Up/Download limits was set
  1774.     to 1 : 2 *bytes*. I was not able to reproduce the
  1775.     problem in version 0.9a
  1776.  
  1777. TEST:    I got a report that the server would crash if scandisk
  1778.     was started when it was running. I ran scandisk with
  1779.     no problems with the file system idle.
  1780.  
  1781. BUGFIX:    The "alias" name in the File Security tab was not always
  1782.     updated after a change. 
  1783.     Fixed.
  1784.  
  1785. BUGFIX:    In version 0.6a, when the design of the file system
  1786.     changed, a new bug was introduced. It was not possible
  1787.     to CD to a mapped dir if the root dir was a drive
  1788.     i.e. C:\ The CD would only work if the home dir was
  1789.     somewhere down in a sub-directory.
  1790.     Another related problem was that when the system was using 
  1791.     DOS mode in dir listings/paths, it was not possible to
  1792.     "CD \" and get to the root dir.
  1793.     [The path parsing functions, supporting DOS/UNIX style 
  1794.     paths + OLE .lnk files + mappings are now among the most
  1795.     advanced and complex parts of the server]
  1796.     Fixed.
  1797.  
  1798. BUGFIX:    When the spy dialog was closed with the [x] button, or
  1799.     by pressing the [ESC] key, it was not possible to
  1800.     spy on that user again.
  1801.     Same behavior is reported when closing a minimized
  1802.     soy window.
  1803.     Fixed.
  1804.  
  1805. BUGFIX:    Traced down a memory leak that would allocate 8 KB
  1806.     memory for each connection, and never release the
  1807.     memory. There can still be memory leaks, but all I
  1808.     have found in the current version is an unidentified 25 
  1809.     bytes buffer that remains allocated from the server starts
  1810.     till it is shut down.
  1811.     ALPHA TESTERS: Please keep an eye on your system and
  1812.     report if the system runs slower after a day or two
  1813.     without stopping the server.
  1814.  
  1815. BUGFIX:    The server did not handle write error's on incoming files
  1816.     very well. It will now abort the file transfer.
  1817.     Log files will not be written if disk errors occur.
  1818.     The user database will be corrupted if the disk where
  1819.     it remains gets full. It is not possible to update
  1820.     the user database in this situation, and the situation
  1821.     will not be discovered before the error occurs.
  1822.     Therefore: Make sure to start the server from a disk
  1823.     partition that will not run full. Let the users fill
  1824.     up other partitions or drives.
  1825.  
  1826. ------------------------------
  1827. V. 0.8a ALPHA April 17. 1996
  1828. ------------------------------
  1829.  
  1830. UPDATE:    The dll's are updated to MSVC 4.1. If you are experiencing
  1831.     problems with your existing dll's, get the dll .zip file.
  1832.  
  1833. BUGFIX:    If max simultaneous users was specified on a user/group/class,
  1834.     the user could not log in at all.
  1835.     Fixed.
  1836.  
  1837. BUGFIX:    Passwords added when the user was created was not stored. 
  1838.     Fixed.
  1839.  
  1840. BUGFIX:    If a user logged in right after he was created, but before
  1841.     the internal tables were synchronized (happens when you press
  1842.     the [OK] button in the security dialog), the system would
  1843.     chrash.
  1844.     Fixed.
  1845.  
  1846.  
  1847.  
  1848. ------------------------------
  1849. V. 0.7a ALPHA April 16. 1996
  1850. ------------------------------
  1851.  
  1852. ADDED:    (Win95) Icon in system tray. If the window is minimized, ESC 
  1853.     pressed or the close [X] button pressed, the server will hide 
  1854.     itself and only    be available by clicking on the icon in the 
  1855.     system tray. The only way to stop the server is to use the 
  1856.     menu and choose    Exit.
  1857.  
  1858. ADDED:    Option in file system setup to disable the .Index.txt
  1859.     file.
  1860.  
  1861. BUGFIX:    When the system was offline and vfsys enabled, it would 
  1862.     crash if the OK button in the file system options was
  1863.     pressed.
  1864.     Fixed.
  1865.  
  1866. ------------------------------
  1867. V. 0.6a ALPHA April 14. 1996
  1868. ------------------------------
  1869.  
  1870. ADDED:    Temporary hook to support "mget *" command.
  1871.     NOTE: Regular pattern matching is still not supported,
  1872.     only "*" can be used (ie. not *.txt etc..).
  1873.  
  1874. ADDED:     SITE MSG <message>
  1875.     The message will show up on the main console.
  1876.  
  1877. ADDED:    Menu bar on the main console.
  1878.  
  1879. CHANGE:    Design change in user/group dialogs and internal design.
  1880.     This includes a mass-implementation of new features.
  1881.     NOTE: The file format has changed and the system can no longer
  1882.     read or understand the database files of previous versions.
  1883.     The .ini file is compatible with previous versions.
  1884.  
  1885. CHANGE:    System database is now encrypted.
  1886.  
  1887. CHANGE:    Virtual files (LIST, ".Index.txt") are now listed in the log
  1888.     under the DEBUG flag (and will only show up if the logging if
  1889.     DEBUG messages are enabled).
  1890.  
  1891. CHANGE:    Filesize are added to the logs notification of successfull
  1892.     transfer.
  1893.  
  1894. CHANGE:    Main console is now resizable.
  1895.  
  1896. BUGFIX:    All reported bugs are supposed to be fixed.
  1897.  
  1898. ------------------------------
  1899. V. 0.5a ALPHA April 4. 1996
  1900. ------------------------------
  1901.  
  1902. ADDED:    Extended access control. Now a user can be denied/allowed access 
  1903.     on system wide, user class, user group and user level.
  1904.     The access control module checks the access in this order:
  1905.     1) Is the userclass anonymous, and anonymous access denied?
  1906.     2) Is the userclass not root, and general access denied?
  1907.     3) Is there user-level access permissions?
  1908.     4) Is there group-level access permissions?
  1909.     5) Is there userclass-level access permissions?
  1910.     6) Is there permissions at all?
  1911.     If there is defined access or not access, the processing stops and
  1912.     the user is given access or denied. If the state is undetermined
  1913.     (grayed check box), the next test is performed.
  1914.  
  1915.     1 - 2 are defined with the checkbuttons on the system console
  1916.     3 is a new button in the user dialog
  1917.     4 is a new button in the group dialog
  1918.     5 - 6 are new buttons in the system options dialog.
  1919.     There is also a simple report available, listing the users and their
  1920.     permissions. 
  1921.  
  1922.     NOTE: Anonymous users can now be denied access from the system options
  1923.     dialog, and from the system console. If they are denied access from
  1924.     the system options dialog, users with userclass anonymous can still
  1925.     log in if they are given explicit access in the user or group
  1926.     dialogs. But if the button on the main console is pressed, they
  1927.     are denied access no matter what the user or group settings says.
  1928.  
  1929.  
  1930. ADDED:    OLE support for Win95 .lnk files. The .lnk files will show up
  1931.     as mapped directories. 
  1932.  
  1933.     NOTE1: The user must have permission to the directory in order
  1934.     to access the link. But the directory does not need to be mapped to
  1935.     the users homedir.
  1936.     The .lnk support is intended to make it easier for the user to
  1937.     navigate in the system, not to make an easy way to surpass
  1938.     security.
  1939.  
  1940.     NOTE2: I have successfully downloaded files that was linked with
  1941.     this method. However, Cute-ftp and WS_FTP has a bug in their parsing
  1942.     of the directory listings that make them treat any links as directories,
  1943.     and (as far as I can see) has no direct method to download links that
  1944.     points directly to files. To fix this problem I list links to regular
  1945.     files as normal files, without the 'l' flag set.
  1946.     When such files are downloaded the server reports the correct name, but
  1947.     the FTP clients will use the filename.lnk name. The files will have to be 
  1948.     manually renamed by the user after download.
  1949.     ***The user will still need to have permissions to the directory where 
  1950.     the actual file is located.
  1951.  
  1952.  
  1953. CHANGE:    Changed internal system time functions from GMT to local time zone.
  1954.  
  1955. CHANGE:    Removed security restriction that denied creation of directories at the
  1956.     root level. (MKD C:\NEWDIR)
  1957.  
  1958. CHANGE:    The tab order of the system console and the Msg User dialog are changed.
  1959.  
  1960. CHANGE:    Help is made the default button on the system console.
  1961.  
  1962. BUGFIX:    The server would crash if a user logged in and the group he belonged to
  1963.     not was found.
  1964.     Fixed.
  1965.  
  1966. BUGFIX:    The path parser will now detect (and skip) /./ in the path.
  1967.  
  1968. BUGFIX:    The .message.ftp.txt files was not closed after use.
  1969.     Fixed.
  1970.  
  1971.  
  1972. ------------------------------
  1973. V. 0.4a ALPHA April 3. 1996
  1974. ------------------------------
  1975.  
  1976. ADDED:    Users IP address to spy dialog.
  1977.  
  1978. ADDED:     Textfile to display as welcome message when changing directory.
  1979.     The filename can be modified in the system setup dialog.
  1980.     Default filename is ".message.ftp.txt"
  1981.     The message file have support for macros
  1982.     Tested with Cute-ftp, MS Internet Explorer and Netscape Navigator.
  1983.  
  1984. ADDED:    Full support for mapping of dirs. to home. The path will now show
  1985.     the path from the homedir if the user is in any path mapped to the
  1986.     homedir. If i.e. D:\ is mapped to C:\FTP, you can say "CD /C/FTP/D/BIN"
  1987.     and come to the D:\BIN directory. The server will report "/C/FTP/D/BIN"
  1988.     as the current directory (or "/D/BIN") if home is mapped to root.
  1989.  
  1990. ADDED:    PASV command implemented.
  1991.  
  1992. ADDED:    UNIX style link output on "ls -l" on mapped dirs.
  1993.  
  1994. ADDED:    "System type" option in system setup, UNIX or Real.
  1995.     This applies to the SYST command. If "Real" is checked
  1996.     the system will report the actual operating system
  1997.     (WIN32 + WN95 or NT). If "UNIX" is checked, it will
  1998.     report "UNIX Type: L8" (I have no idea about what L8 stands for,
  1999.     but it appears that Netscape Navigator wont accept the "ls -l" LIST
  2000.     format without this response).
  2001.  
  2002. ADDED:     "SIZE path" nonstandard FTP command implemented.
  2003.  
  2004. ADDED:    Support for BINARY LIST transfer. (If UNIX file system, only newline are
  2005.     sent as end-of-line marker).
  2006.  
  2007. CHANGE:    The scrolling of the log window is changed. If the first line is selected
  2008.     the first line will always be displayed on top. If another line is selected
  2009.     then that selection will remain active, and new messages will not be visible 
  2010.     before the window is scrolled up manually.
  2011.  
  2012. CHANGE:    The program will now terminate at once when the EXIT button is pressed.
  2013.     In previous versions the EXIT button set a flag that was polled once
  2014.     a second (when the log window is updated). In some rare cases the timer
  2015.     would not start, and the program would not respond to the EXIT
  2016.     button at all. This is now fixed.
  2017.  
  2018. CHANGE:    The output from the LIST command is now comforming 100% with UNIX 
  2019.     standard (as far as there *is* such a thing...).
  2020.  
  2021. CHK:    I got a report that permissions on the home dir. did not applied for the homedir.
  2022.     I am not able to reproduce the problem. (Unless if I change the map parameter
  2023.     when the user is online. The server does not handle that. If this happens,
  2024.     the user must issue a "CD /" command to reset the FTP client's and the    
  2025.     servers recognition of the current working directory.)
  2026.  
  2027. CHK:    I got a report that uploaded files not was shown in the Spy xmit history
  2028.     dialog. I am not able to reproduce the problem.
  2029.  
  2030. FIX:    Goodbye message was not sent. 
  2031.     Fixed.
  2032.  
  2033. BUGFIX:    When using WS_FTP the server would sometimes show a wrong ".Index.txt"
  2034.     file. The "problem" was that WS_FTP are optimizing speed by caching directory
  2035.     information. The server was optimizing speed by not reading the directory
  2036.     info into memory before the user issued a LIST command. What happened was that
  2037.     the server kept a cache of the last directory read, containing the information
  2038.     used to build the ".Index.txt" file, but sometimes for the wrong dir.
  2039.     The servers cache is now trashed when the user issues a CWD command. It will
  2040.     reload the directory info if the user want the ".Index.txt" file, even if
  2041.     no LIST command is given.
  2042.     Note: The ".Index.txt" file is created in memory, based on the cached 
  2043.     directory information. The file length reported by LIST is just an estimate.
  2044.     The server will *only* load the ".Index.txt" for the current directory.
  2045.     If a path is given, it will try to open a real file named ".Index.txt".
  2046.  
  2047. BUGFIX:    If a file with an attached comment were deleted, it would result
  2048.     in a page protection fault.
  2049.     Fixed.
  2050.  
  2051. BUGFIX:    The server asked for password for users without password.
  2052.     Fixed.
  2053.  
  2054. BUGFIX:    If a user had a name that was not the same as any group, the program
  2055.     would get a page protection fault.
  2056.     Fixed.
  2057.  
  2058. BUGFIX:    User-Group dialog: It was not possible to add a new path when it was
  2059.     part of an already defined path i.e. Could not add "D:\" if "D:\tmp" was
  2060.     defined.
  2061.     Fixed.
  2062.  
  2063. BUGFIX:    A rare condition in the optional dir. combo-box (invalid selection) would
  2064.     lead to a page protection fault.
  2065.     Fixed.
  2066.  
  2067. BUGFIX:    Virtual File system: (LIST) Number of dirs was not updated when only
  2068.     drives was shown (PWD=\ --> show dives in stead of dirs/files).
  2069.     Fixed.
  2070.  
  2071. BUGFIX: Serious problem with "CD /path/dir./../anotherdir". The path-parser did not
  2072.     recognize the "/../" sequence, leaving the "anotherdir" open for access
  2073.     with no access control.
  2074.     Fixed.
  2075.  
  2076. BUGFIX:    Sometimes the path was still shown as "/c/"
  2077.     Fixed.
  2078.  
  2079. BUGFIX:    "CD .." did not work very well if the current directory was "C:\"
  2080.     Fixed.
  2081.  
  2082. BUGFIX:    The server would not work with MS Internet Explorer and Netscape Navigator.
  2083.     Fixed.
  2084.  
  2085. BUGFIX:    The logfiles was not flushed at shutdown.
  2086.     Fixed.
  2087.  
  2088. BUGFIX:    Trying to delete an un-empty directory caused a page protection fault.
  2089.     Fixed.
  2090.  
  2091. BUGFIX:    Creating an existent directory (MKD) caused a page protection fault.
  2092.     Fixed
  2093.  
  2094.  
  2095. ------------------------------
  2096. V. 0.3a ALPHA March 31. 1996
  2097. ------------------------------
  2098.  
  2099. ADDED:    Spy: History of file xmits for the current connection
  2100.  
  2101. ADDED:    Spy: User-account and connection-only file counters
  2102.  
  2103. ADDED:     Macros for number of users online, max users online, 
  2104.     number of anonymous users online and max anonumous 
  2105.     users online.
  2106.  
  2107. FIX:    "Locate cursor in first text filed in input dialogs"
  2108.     Fixed.
  2109.  
  2110. FIX:    "Blank user name should not be allowed"
  2111.     Blank user and groupnames, and user and group names with
  2112.     white space are now denied.
  2113.  
  2114. FIX:    Macroes that displays current up/download counter will now
  2115.     show session counters for session only for users with 
  2116.     session only up/download class.
  2117.  
  2118. FIX:    Deny access to directories with no permissions checked
  2119.     If you want to deny access to a directory in the users
  2120.     homepath (or one of the optional paths), you add the
  2121.     directory you want to close as an optional path and
  2122.     turn off all file/dir. permissions.
  2123.  
  2124. FIX:    Small icon used MFC instead of tFTPd style icon.
  2125.     Fixed.
  2126.  
  2127. FIX:    Cute FTP and "resolve links" is not working.
  2128.     The problem was that Cute-ftp sent a LIST -L
  2129.     command, that is undocumented in the FTP specs.
  2130.     I have added a hook to just ignore this parameter for now,
  2131.     and it seems that Cute-ftp is quite happy with the
  2132.     standard UNIX "ls -l" it gets back...
  2133.  
  2134. BUGFIX: recognize CD "d:" and CD "d:\" as the same thing
  2135.  
  2136. BUGFIX:    Unix style /c/ as current dir. is nonstandard and ugly
  2137.     fixed. Will now display /c
  2138.  
  2139. BUGFIX: Unix style CD /c/usr don't work
  2140.     fixed.
  2141.  
  2142. ------------------------------
  2143. V. 0.2a ALPHA March 30. 1996
  2144. ------------------------------
  2145. BUGFIX: "MKDIR reports 501 permission denied"
  2146.     This was not a bug, but rather a logical error.
  2147.     RMDIR was probithed when the user did not have
  2148.     access to subdir (Apply for subdirs checkbox).
  2149.     The dialog will now disable the Rmdir and Mkdir
  2150.     checkboxes when the Apply for subdirs checkbox
  2151.     is unchecked.
  2152.  
  2153. BUGFIX:    "Mapped drive did not show up in homedir"
  2154.     Unable to reproduce this error. If it is a problem somewhere,
  2155.     I guess it will be fixed when I complete the implementation
  2156.     of mapped directories (scheduled to the next release).
  2157.  
  2158. BUGFIX:    "NT, problem with zombie server"
  2159.     Fixed.
  2160.  
  2161. BUGFIX: "Win95, problem with displayed IP number when the PC is off-line."
  2162.     Fixed.
  2163.  
  2164. Added RFC 1123 4.1.3.1 support
  2165.  
  2166.             FTP allows "experimental" commands, whose names begin with
  2167.             "X".  If these commands are subsequently adopted as
  2168.             standards, there may still be existing implementations using
  2169.             the "X" form.  At present, this is true for the directory
  2170.             commands:
  2171.  
  2172.                 RFC-959   "Experimental"
  2173.  
  2174.                  * MKD        XMKD
  2175.                  * RMD        XRMD
  2176.                  * PWD        XPWD
  2177.                  * CDUP       XCUP
  2178.                  * CWD        XCWD
  2179.  
  2180.             All FTP implementations SHOULD recognize both forms of these
  2181.             commands, by simply equating them with extra entries in the
  2182.             command lookup table.
  2183.  
  2184. ------------------------------
  2185. V. 0.1a ALPHA March 29. 1996
  2186. ------------------------------
  2187.  
  2188. Virtual file system is not fully implemented. It will start and run, but
  2189. the server will not use it for any user services. Only the "comment on file"
  2190. benefit of the virtual file system is supported.
  2191.